세이브포인트
트랜잭션 내에서 특정 지점을 표시하는 방법이다. 세이브포인트를 설정한 후에는 해당 지점까지의 작업을 롤백하는 것이 가능하다. 전체 트랜잭션을 롤백하는 것이 아닌, 세이브포인트 이후의 변경사항만 롤백하게 된다.
대부분의 현대 RDBMS 에서는 지원하고 있다. 오래된 버전의 데이터베이스, 몇몇 NoSQL 데이터베이스는 세이브포인트 기능을 제공하지 않을 수 있다.
MySQL
세이브포인트를 지원한다.
- SAVEPOINT savepoint_name: 트랜잭션 내에서 세이브포인트를 생성.
- ROLLBACK TO savepoint_name: 해당 세이브포인트까지의 변경사항 롤백
- RELEASE SAVEPOINT savepoint_name: 세이브포인트 제거